1. Field of the Invention
The present invention relates to a data transmission method applied for data grids, in particular to an anticipative recursively-adjusting co-allocation mechanism plus (ARAM+) with a high-performance data transmission capability.
2. Brief Description of the Related Art
As Internet is developed rapidly, an exchange of a huge amount of files and data is taken place continuously in the Internet to satisfy a high demand of data transmissions for different users.
To satisfy the user requirement of a large number of data transmissions more quickly, we generally duplicate a dataset into a large number of copies to be transmitted and stored in a plurality of servers for providing a data grid of data transmission services. Therefore, it is a major subject in this field to provide a quick and effective way of transmitting data in the data grid environment.
With reference to FIG. 1 for a schematic view of a structure of a conventional co-allocation data transmission, a user sends a request to a broker 20 by an application program 10 for transmitting a data file, and the broker 20 inquires an information service 30 to obtain data of candidate servers 51, 52, 53 that store the user's required data file, and then a co-allocator 40 takes over the operation of starting a data transmission of the candidate servers 51, 52, 53 in a data grid storage system 50 by different co-allocation methods, so as to enhance the performance of data transmissions.
In a common conventional co-allocation method, a desired transmitting data file is divided into three equal parts, and the candidate servers 51, 52, 53 transmit the three equal parts parallelly. However, this method has not taken different transmission capabilities of the candidate servers 51, 52, 53 into consideration, the transmission time is obviously delayed by a server with a lower transmission speed, and thus other methods as illustrated in FIGS. 2, 3A and 3B are developed to improve the performance of the data transmission.
With reference to FIG. 2 for a flow chart of a conventional recursively-adjusting co-allocation method (RAM), a user defines a recursive parameter α and a reference minimum allocating file size first, and then in Step 201, an unassigned file size (UnassignedFileSizei) for transmission is calculated, wherein the unassigned file size is set to be equal to a desired transmitting file size in initialization, and thereafter, the unassigned file size is a file size that has not been allocated for transmission. In Step 202, the unassigned file size is determined whether or not it is smaller than the minimum allocating file size defined by the user; if yes, then go to Step 203 to set the desired allocating file size to be equal to the unassigned file size, or else go to Step 204 to calculate the desired allocating file size SEi=UnassignedFileSizei*α of a desired transmission of present round.
In Step 205, a bandwidth of each candidate server measured by a network weather system (NWS) is used for allocating the transmitting file size of each candidate server in the present round. After the allocation is completed, the method enters into Step 206 to execute the transmission and calculate a transmission completion percentage of each candidate server. Step 207 determines whether or not there is any candidate server completing a transmission, and if no, then the method continues executing the transmission and calculating the completion percentage; if yes, then it means that at least one candidate server has completed the transmission in the present round. Step 208 determines whether or not the present round is the final round, which is the situation when the desired transmitting file has finished to be allocated; if no, then return to Step 201 to calculate the unassigned file size of the next round; if yes, then go to Step 209 to continue completing the data transmission of other candidate servers.
Although the recursively-adjusting co-allocation method as shown in FIG. 2 has taken different transmission capabilities of the candidate servers into consideration, yet the recursive parameter α and the minimum allocating file size are defined by users and remain unchanged, and thus the transmission performance is not dependent on a user's professionalism only, but it is also affected by the bandwidth of each candidate server non-instantaneously measured by the network weather system (NWS). Furthermore, the parameter, desired allocating file size and allocation method used for every round are obviously not flexible.
With reference to FIGS. 3A and 3B for a flow chart of a conventional anticipative recursively-adjusting co-allocation method (ARAM), a user still needs to define a recursive parameter α, and then in Step 301, an unassigned file size STi for transmission is calculated, wherein the unassigned file size STi is set to be equal to a desired transmitting file size in initialization, and thereafter the unassigned file size STi is set to be equal to the total sum of the file sizes that have not been allocated for transmission and the remainder that has not been transmitted by each candidate server in a previous round. In Step 302, the bandwidth of the candidate servers is measured in real time. In Step 303, the method determines whether or not the unassigned file size is larger than the sum of bandwidths of the candidate servers; if no, then go to Step 306 to set the desired allocating file size to be equal to the unassigned file size; if yes, then go to Step 304 to calculate the desired allocating file size SEi=STi*α in the present round.
In Step 305, the method determines whether or not the desired allocating file size is greater than the sum of bandwidths of the candidate servers; if no, then go to Step 306 to reset the desired allocating file size to the unassigned file size; if yes, then go to Step 307 to allocate the transmitting file size of each candidate server in the present round according to the measured bandwidth of each candidate server and the transmission completion percentage in a previous round.
After the desired allocating file size has been allocated, the procedure will enter into Step 308 to execute the transmission and calculate the transmission completion percentage of each candidate server. Step 309 determines whether or not there is any candidate server completing the transmission; if no, then the procedure continues executing the transmission and calculating the completion percentage; if yes, it means that at least one candidate server has completed the transmission in the present round. Step 310 determines whether or not the present round is the final round, which is the situation when the desired transmitting file has finished to be allocated; if no, then return to Step 301 to calculate the unassigned file size of the next round; if yes, then go to Step 311 to continue completing the data transmission of other candidate servers.
With reference to FIGS. 3A and 3B for the conventional anticipative recursively-adjusting co-allocation method, although the bandwidth of each candidate server is measured in real time, and included into the consideration of different transmission capabilities of the candidate servers, the reliability and accuracy of the bandwidth measurement method are low, so as to affect the actual transmission performance. Yet the recursive parameter α is defined by users and remains constant and cannot be adjusted in real time with a change of the transmission environment, so that the conventional method is not suitable for different data grid environments to achieve the expected transmission effect. Furthermore, the transmission mode and the calculation of the allocation method of the desired allocating file size still cannot meet the performance requirement.